home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 January - Disc 2
/
Macworld (1999-01) (Disk 2).dmg
/
Serious Demos
/
Symbolic Composer 4.2
/
Environment
/
Projects
/
Tutorial Material
/
Zone Tutorial
/
Structure Examples
/
2. Study2
< prev
next >
Wrap
Lisp/Scheme
|
1998-10-26
|
2KB
|
87 lines
; structure study for two synthesisers
; notice: rhythms written in tick values which result to very rapid
; rhythms with the new whole note tick value
(create-tonality clusters '(c 3 c# 3 f 3 f# 3 g 3 b 3))
(create-tonality spaces '(c 3 c# 3 d# 3 f# 3 b 3 f 4 c 4 g# 4 e 5))
(setq chord1 (activate-tonality (clusters c 5)))
(setq chord2 (activate-tonality (clusters c# 5)))
(setq chord3 (activate-tonality (clusters f# 3)))
(setq tonal (activate-tonality (spaces c 3)))
(setq tonal1 (activate-tonality (spaces c 5)))
(setq row '(a d c f =))
(initdef)
(defsym a '(ab cd df))
(defsym b (append row '(bc def)))
(defsym f '(b a f = cdf))
; Nigel has been using tick value 96 for 1/4 note.
; Because Nigel often mixes ticks and ratios, the function must take
; both cases into account.
(defun use-nigel-ticks (l)
(let (out)
(dolist (x l)
(if (is-length-symbol x)
(push x out)
(push (* x 5) out)))
(nreverse out)))
(setq rhy1 (use-nigel-ticks '(1/32)))
(setq rhy2 (use-nigel-ticks
(vector-to-list (vector-round 6 192 (gen-sin 2 0.7 32 120)))))
(setq rhy3 (use-nigel-ticks (gen-loop '(1 4 3 2) '(12 18 24 30))))
(setq rhy4 (use-nigel-ticks '(-48 24 24 1/8-5 1/8-5 1/8-5 1/8-5 1/8-5)))
(setq mel1 (gen-trans a 2))
(setq mel2 (gen-notrans b 2))
(setq mel3 (gen-notrans f 2))
(setq mel4 (fill-template rhy2 (symbol-repeat 2 row)))
(setq vel1 '(112 96 84 72))
(setq vel2 (vector-to-list (vector-round 30 120
(gen-sin 2 0.7 32 120))))
(setq vel3 (vector-to-list (vector-round 30 120 (reverse (change-length times 3 rhy3)))))
(setq vel4 '(0 20 40 60 65 70 75 80))
(def-symbol
syn1 mel1
syn2 mel2
syn3 mel3
bas1 mel4
bas2 mel3
)
(def-length
syn1 rhy4
syn2 rhy2
syn3 rhy3
bas1 rhy1
bas2 (append rhy4 rhy3 rhy2)
)
(def-velocity
syn1 vel4
syn2 vel2
syn3 vel3
bas1 vel1
bas2 (append vel4 vel3 vel2)
)
(compile-song-p "ccl;output:" 1/2 "duo"
; BARS |--|----|---|-|--|---|----|-|
syn1 tonal1 "- - --- -- --- -"
syn2 chord1 " - -- ----- "
syn3 chord2 " - -- - -- "
bas1 chord3 "--- - -- "
bas2 tonal " --- --- - - ---- -"
)
; Duo for Clavinet and Bass Synth